package pharao.client.dto;

import java.util.ArrayList;
import java.util.Collection;

import net.sf.hibernate4gwt.pojo.gwt.LazyGwtPojo;

public class UserDTO extends LazyGwtPojo {
	
	public static UserDTO getTestUserDTO(String username) {
		
		OrtDTO ortDTO = new OrtDTO();
		
		OrtStatusDTO ortStatus = new OrtStatusDTO();
		ortDTO.setOrtStatus(ortStatus);
		
		Collection collectionOrte = new ArrayList(6);
		
		/*
		 * Orte anlegen
		 */
		OrtDTO ortDTO1 = new OrtDTO();
		OrtDTO ortDTO2 = new OrtDTO();
		OrtDTO ortDTO3 = new OrtDTO();
		
		ortDTO1.setId(1);
		ortDTO2.setId(2);
		ortDTO3.setId(3);
		
		LandkarteDTO landkarteDTO = new LandkarteDTO();
		
		ortDTO1.setLandkarteDTO(landkarteDTO);
		ortDTO2.setLandkarteDTO(landkarteDTO);
		ortDTO3.setLandkarteDTO(landkarteDTO);
		
		/*
		 * Ort-Status anlegen
		 */
		OrtStatusDTO ortStatusDTO1 = new OrtStatusDTO();
		OrtStatusDTO ortStatusDTO2 = new OrtStatusDTO();
		OrtStatusDTO ortStatusDTO3 = new OrtStatusDTO();
		
		ortStatusDTO1.setVisited(true);
		ortStatusDTO1.setEnabled(true);
		
		/*
		 * Ort-Status zum Ort hinzufügen
		 */
		ortDTO1.setOrtStatus(ortStatusDTO1);
		ortStatusDTO1.setOrtDTO(ortDTO1);
		
		ortDTO2.setOrtStatus(ortStatusDTO2);
		ortStatusDTO2.setOrtDTO(ortDTO2);
		
		ortDTO3.setOrtStatus(ortStatusDTO3);
		ortStatusDTO3.setOrtDTO(ortDTO3);
		
		collectionOrte.add(ortDTO1);
		collectionOrte.add(ortDTO2);
		collectionOrte.add(ortDTO3);
		
		/*
		 * Orte zur Landkarte hinzufügen
		 */
		landkarteDTO.setCollectionOrte(collectionOrte);
		ortDTO.setLandkarteDTO(landkarteDTO);
		
		UserDTO userDTO = new UserDTO();
		userDTO.setName(username);
		userDTO.setLandkarteDTO(landkarteDTO);
		
		return userDTO;
	}

	/**
	 * 
	 */
	private static final long serialVersionUID = -4073512240049298429L;

	private int id;

	private LandkarteDTO landkarteDTO;

	private String name;

	public UserDTO() {
		// TODO Auto-generated constructor stub
	}

	public int getId() {
		return id;
	}

	public LandkarteDTO getLandkarteDTO() {
		return landkarteDTO;
	}

	public String getName() {
		return name;
	}

	public void setId(int id) {
		this.id = id;
	}

	public void setLandkarteDTO(LandkarteDTO landkarteDTO) {
		this.landkarteDTO = landkarteDTO;
	}

	public void setName(String name) {
		this.name = name;
	}

}
